### 3.3 Getting Help

You can always ask gdb itself for information on its commands, using the command `help`.

`help`
`h`
  You can use `help` (abbreviated `h`) with no arguments to display a short list of named classes of commands:

                (gdb) help
                List of classes of commands:

                aliases -- Aliases of other commands
                breakpoints -- Making program stop at certain points
                data -- Examining data
                files -- Specifying and examining files
                internals -- Maintenance commands
                obscure -- Obscure features
                running -- Running the program
                stack -- Examining the stack
                status -- Status inquiries
                support -- Support facilities
                tracepoints -- Tracing of program execution without
                               stopping the program
                user-defined -- User-defined commands

                Type "help" followed by a class name for a list of
                commands in that class.
                Type "help" followed by command name for full
                documentation.
                Command name abbreviations are allowed if unambiguous.
                (gdb)

`help` class
  Using one of the general help classes as an argument, you can get a list of the individual commands in that class. For example, here is the help display for the class `status`:

                (gdb) help status
                Status inquiries.

                List of commands:

                info -- Generic command for showing things
                        about the program being debugged
                show -- Generic command for showing things
                        about the debugger

                Type "help" followed by command name for full
                documentation.
                Command name abbreviations are allowed if unambiguous.
                (gdb)

`help` command
  With a command name as `help` argument, gdb displays a short paragraph on how to use that command.

`apropos` args
  The `apropos` command searches through all of the gdb commands, and their documentation, for the regular expression specified in args. It prints out all matches found. For example:

                apropos alias

  results in:

                alias -- Define a new command that is an alias of an existing command
                aliases -- Aliases of other commands
                d -- Delete some breakpoints or auto-display expressions
                del -- Delete some breakpoints or auto-display expressions
                delete -- Delete some breakpoints or auto-display expressions

`complete` args
  The `complete` args command lists all the possible completions for the beginning of a command. Use args to specify the beginning of the command you want completed. For example:

                complete i

  results in:

                if
                ignore
                info
                inspect

  This is intended for use by gnu Emacs.

In addition to `help`, you can use the gdb commands `info` and `show` to inquire about the state of your program, or the state of gdb itself. Each command supports many topics of inquiry; this manual introduces each of them in the appropriate context. The listings under `info` and under `show` in the Command, Variable, and Function Index point to all the sub-commands. See Command and Variable Index.

`info`
  This command (abbreviated `i`) is for describing the state of your program. For example, you can show the arguments passed to a function with `info args`, list the registers currently in use with `info registers`, or list the breakpoints you have set with `info breakpoints`. You can get a complete list of the `info` sub-commands with `help info`.

`set`
  You can assign the result of an expression to an environment variable with `set`. For example, you can set the gdb prompt to a $-sign with `set prompt $`.

`show`
  In contrast to `info`, `show` is for describing the state of gdb itself. You can change most of the things you can `show`, by using the related command `set`; for example, you can control what number system is used for displays with `set radix`, or simply inquire which is currently in use with `show radix`.

  To display all the settable parameters and their current values, you can use `show` with no arguments; you may also use `info set`. Both commands produce the same display.

Here are several miscellaneous `show` subcommands, all of which are exceptional in lacking corresponding `set` commands:

`show version`
  Show what version of gdb is running. You should include this information in gdb bug-reports. If multiple versions of gdb are in use at your site, you may need to determine which version of gdb you are running; as gdb evolves, new commands are introduced, and old ones may wither away. Also, many system vendors ship variant versions of gdb, and there are variant versions of gdb in gnu/Linux distributions as well. The version number is the same as the one announced when you start gdb.

`show copying`
`info copying`
  Display information about permission for copying gdb.

`show warranty`
`info warranty`
  Display the gnu “NO WARRANTY” statement, or a warranty, if your version of gdb comes with one.

`show configuration`
  Display detailed information about the way gdb was configured when it was built. This displays the optional arguments passed to the `configure` script and also configuration parameters detected automatically by `configure`. When reporting a gdb bug (see GDB Bugs), it is important to include this information in your report.